package com.quanyan.club.service;

import com.quanyan.api.APIResponse;
import com.quanyan.club.entity.vo.req.movement.ReqClubListInfo;
import com.quanyan.club.entity.vo.resp.movement.RespClubIntegralRank;
import com.quanyan.common.Plugin.PageObj;

import java.util.List;
import java.util.Map;

/**
 * @author xian-guo
 * @email 498152332@qq.com
 * @date 2016/12/13.
 */
public interface ClubIntegralService {

    /**
     * 活动评论后，计算俱乐部积分
     * @param clubId
     */
    public boolean modifyClubCommentStar(int clubId,double star);

    /**
     * 加入俱乐部成功后，计算俱乐部积分
     * type :加入0,退出：1
     * @param clubId
     */
    public boolean joinClubCountSum(int clubId,int type);


    /**
     * 周任务算积分
     * @param clubId
     * @param completeNum
     * @param taskNum
     * @param completeMem
     * @param taskMem
     * @return
     */
    public boolean modifyClubWeekTaskStar(int clubId, int completeNum,int taskNum, int completeMem,int taskMem);

    /**
     * 获取俱乐部积分排名
     * @param reqClubListInfo
     * @return
     */
    public APIResponse<Map<String,Object>> getClubIntegralRank(ReqClubListInfo reqClubListInfo);

    /**
     * 俱乐部首页获取俱乐部积分全国排名
     * @param clubId
     * @return
     */
    public RespClubIntegralRank getClubIntegralRankByClubId(int clubId,int clubType);

    /**
     * 获取俱乐部积分开关： 0开，1关
     * @return
     */
    public Byte getIntegralSwitch();

    /**
     * 跟新搜索后俱乐部星级
     * @param clubId
     */
    public double updateSearchClubStar(int clubId);

    /**
     * 计算周任务参与人数
     * @param clubId
     * @param memberNum
     */
    public void calcClubActivityMember(int clubId,int memberNum);

    /**
     * 根据周任务的记录，重新计算俱乐部的周任务产生的积分
     */
    public void reindexClubWeekTaskIntegral();
}
